package chapter8.homework;

import java.util.*;

public class ListDeduplication {
    public static List<Integer> deduplicateAndSort(List<Integer> list) {
        // 1. 使用 HashSet 去重
        Set<Integer> uniqueSet = new HashSet<>(list);
        // 2. 将去重后的元素放入新列表
        List<Integer> resultList = new ArrayList<>(uniqueSet);
        // 3. 对列表进行排序
        Collections.sort(resultList);
        return resultList;
    }

    public static List<Integer> deduplicateAndSort2(List<Integer> list) {
        // 创建一个新列表存储去重后的元素
        List<Integer> uniqueList = new ArrayList<>();
        // 手动遍历去重
        for (Integer num : list) {
            if (!uniqueList.contains(num)) {
                uniqueList.add(num);
            }
        }
        // 对列表进行排序
        Collections.sort(uniqueList);
        return uniqueList;
    }

    public static void main(String[] args) {
        List<Integer> input = Arrays.asList(5, 3, 5, 2, 1, 3, 4);
        List<Integer> result = deduplicateAndSort(input);  // 有两种实现方式
        System.out.println("去重排序后的列表：" + result); // 输出 [1, 2, 3, 4, 5]
    }
}